home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 4
/
United Public Domain Gold 4.iso
/
tbag
/
tb032.dms
/
tb032.adf
/
Doc-Files
/
FixDisk.doc
< prev
next >
Wrap
Text File
|
1989-06-05
|
10KB
|
206 lines
FixDisk V1.0
(C) Copyright Werner Gunther 1989
Freeware
USE THIS PROGRAM AT YOUR OWN RISK
FixDisk is a program to recover as much as possible from a defective disk.
I don't claim it is better than 'Diskdoctor' or 'DiskSalv', but it has some
features the others don't have: first of all it can recover damaged
(unreadable) tracks, it has functions to check file integrity, to check the
directory structure and functions to undelete, copy or show (even
defective) files, fix corrupted directory pointers etc. Everything can be
selected with an intuition interface, so everyone can determine what action
should be take place by himself.
Now the bad news: The program does not keep track of 'loose blocks' i.e.
files without a file header like DiskSalv. It does only work with disks /
partitions using a maximum of 4063 blocks. It may work with larger disks
too, but I don't have a hard disk, so I couldn't test it out. Disks with
more than 4063 blocks are rejected by the program. You may force the
program to accept <48 MB partitions adding 'DOOM' to the command line (i.e.
'FixDisk doom'). As I said before, it has not been tested and should only
be used if anything else failed, and you're just about to format the
partition.
USAGE:
After starting FixDisk from Cli or Workbench you will see a set of gadgets
with the available drives on the top of the window. Choose the desired
drive by clicking it's gadget. If the choosen drive is a 3.5" or a 5.25"
drive you will be asked to insert a disk. Now the program starts to read in
the disk, cylinder by cylinder searching for file/directory headers. This
may take a while, please be patient. Beside read errors you may get some
other messages at this point:
Block 0 has to start with 'DOS' or 'KICK'. If it does not, you are asked
if you want to fix it.
The program couldn't find the root block and FixDisk wants to build a new
one.
The disk isn't validated, the program is going to validate it.
There is no root block and no file header on the disk, the disk is
probably a custom disk (or the Kickstart disk). FixDisk won't check
anything (and won't let you check, change or fix anything) except read
errors.
You may press break (CTRL-C) anytime if you want to abort this operation.
When the disk has been examined, you'll get a file requester on the left
half of the window. The first column shows the 'key' (the block number
where the file header has been found), followed by 'DEL' for deleted files
or '-->', followed by the filename. Red (Color 3) entries are directories.
Click on the filename to select it or shift-click for multiple selections.
Doubleclick a directory to enter the directory.
The right half of the window is filled with 17 Gadgets. As you will notice
some of them are disabled at startup. These are gadgets that will write
onto the disk. To enable them you have to choose 'Write enable' from the
'Miscellaneous' menu (there is only one menu anyway).
THE GADGETS:
Directory - Parent
This gadget is part of the file requester. The requester will show the
files from the parent directory.
Directory - Root
Same as above, but steps to the root directory.
Show - Selected
Shows a file in Hex or ASCII. Like all other commands, the file is
processed without using DOS, but each sector (block) is read in, checked
and displayed. It works exactly the same way 'Copy' (see below) would do,
so you can use this function to see, what exactly can be recovered from a
defective file. If the file is on a 'Standard Filesystem' (non FFS) disk,
you will be asked where the program should take the file links from. Each
block that belongs to a file is listed in the file header block (and in
one or more 'file list blocks' if the file is too large). On the 'Standard
Filesystem' each data block has a pointer to the next block belonging to
the same file, too. So we have two ways to determine how the file is build
up: using the links listed in the file header, or using the inter-block
links. Anyway, it is much safer if you select the file header links, if
only one block is wrong, you'll get a lot of rubbish using the inter-block
links.
Check Files - Selected
This function checks the selected files. With the Standard Filesystem it
is very easy to determine if a file is ok or defective, as each data block
has a checksum, a pointer to the file header, pointer to the next block
etc. This is not the case with the FFS and there is no way to determine if
a given data block really belongs to that file. So, even if the file
passes the test, it may still be corrupted.
Check Files - Deleted
Checks only deleted files, so you can see which one can be undeleted.
Check Files - All
Checks all files.
Undelete Files - Selected
The first thing this function does, is calling 'check file'. If the file
seems to be ok, the file header is inserted into the hash chain of it's
parent directory and the bitmap will be updated, but the 'Bitmap Flag'
will change to 'FALSE', just to make sure the disk is going to be
validated after this operation.
Undelete Files - All
Tries to undelete all deleted files.
Copy Files - Selected
Works like 'Show' (see above). You'll be asked to enter a output
path/directory, if the directory gets full, you may enter a new path. If a
given file already exists in the destination directory, the program will
append '.2' to the filename (if '.2' exits too, you'll get '.2.2', don't
tell me this is dumb, I know that already). Like 'Check File' you may get
some error messages while the program is working. If a block doesn't seem
to belong to a given file, you'll be asked to 'SKIP IGNORE ABORT'. 'Skip'
means, the damaged block won't be copied, 'Ignore' the block will be
copied, no matter what is on that block, 'Abort' leaves 'Copy Files'.
Protection bits are preserved, dates are not.
Copy Files - All
Copies the entire disk, trying to recover as much as possible.
Wipe Files - Selected
This function clears the file header of a deleted file. Utilities like
'Diskdoctor', 'DiskSalv' will try to recover all files, even if they have
been deleted. If you don't want some files to pop up again using one of
the programs above, you may use this function. Be warned: after this
operation you'll have to use a disk-monitor/sector-editor to get the data
back.
Wipe Files - All
Purges all deleted files.
Delete - Selected
Deletes a file, i.e. the file header will be taken out of its hash chain,
and the bitmap updated. The 'Bitmap Flag' will be set to 'FALSE' as in
'Undelete' (see above). This function even works if the DOS delete
does return an error.
Delete - Faulty
Checks all files and deletes those with errors. The program may ask you
before deleting a file, if you wish.
Info - Device
Returns some information about the selected device.
Validate - Disk
This is not the Amiga Validator, but my own. The main difference between
them is that this one tries to repair the disk structure. You may get some
error reports: Loops in a hash chain, wrong or unreadable file headers,
checksum errors or 'key already set', two files claiming to own the
same data block. The usually action that takes place, is to ask you if the
corrupted file may be deleted. You may check what exactly was wrong using
'Show' and 'Check file' afterwards.
Recover - Track
This function tries to get as much as possible from a defective track. It
uses the RAWREAD command from the trackdisk.device and therefore works
with the trackdisk.device only. What it actually does, is to RAWREAD the
track into a buffer, search the syncs, and decode the sector (this may
take some seconds, the routine to decode isn't very fast). If a sector
sync is missing, the program tries to determine where the sector has to
start, this works sometimes, but is usually wrong. When the track has been
decoded, you'll get a window displaying: the number of the sector (1-11),
the first 4 longwords of that sector, if the checksum is OK or BAD, and if
that block is ALLOCated or FREE. If an entries is red (color 3), the
sector didn't have a sync. If, instead of the first few bytes, you get
'unreadable', the program couldn't even work out where the sector should
have been. If you are not satisfied with the result, you may click
'RETRY', this will restart the procedure and usually gives a different
result (if the track has a 'hard' error, i.e. a damaged surface). If you
think the result is good (or good enough) click on 'WRITE', this will
format the track and write those sectors back. It may happen that the
track can't be formatted. Click 'RETRY' several times, the defective part
of the track may 'fall' into the gap at some point. If this doesn't seem
to work, pull out the disk and insert a new, EMPTY!, even unformatted
disk, and write the track on this disk. Now comes the tricky part: back up
the original disk, and copy the recovered track to the backup with
DiskZap/DiskX/Sectorama etc. Hmmm, no, much too complicate, the Amiga is
a multitasking machine! Backup the disk WHILE FixDisk is running, insert
the backup into the drive you have selected and click 'RETRY'.
THE MENU
There are actually only two menuitems:
Ignore readerrors:
Usually you get a requester asking 'RETRY' 'IGNORE' if an error occurs.
This may be very annoying if the disk has a lot of defective tracks. This
item will stop that requester popping up.
It has also a second function: If you are using the 'Copy' function, the
program will stop every time a file seems to be damaged, and asks what
action should be taken. With 'Ignore readerrors' on, errors are just
listed, but the program will act as if you have choosen 'IGNORE'.
Write Enable
Enables those gadgets that will write onto the disk.
That's all. Well, almost. The program has about 80 requesters, some
of them have not been explained, but they should be self-explanatory.
Send flames, bug reports, requests to
G35@DHDURZ1.BITNET
Werner Gunther
Wingertspfad 12
D 6900 Heidelberg (FRG)